[AWS IoT Greengrass V2] ローカルデバッグコンソール(aws.greengrass.LocalDebugConsole)を使用してみました
1 はじめに
IoT事業部の平内(SIN)です。
AWS IoT Greengrass V2(以下、Greengrass V2)での開発形態は、デバイス側でコンポーネントの開発を行い、最終的に、クラウドから他の多数のデバイスにデプロイ(配布)するというスタイルになると思います。
そして、デバイス(ローカル)側で開発を行う上で、非常に有効なツールとしてローカルデバッグコンソール(aws.greengrass.LocalDebugConsole)という、パブリックなコンポーネントが用意されています。
ローカルデバッグコンソールは、ブラウザでアクセス可能なダッシュボードを提供し、コアデバイスやローカルコンポーネントを管理できます。
今回は、ローカルデバッグコンソールをデプロイしてみました。
2 デプロイ
開発用のコアデバイスをgg-devide-001とし、こちらにデプロイしました。
このコンポーネントは、開発環境でのみ使用することが目的となっているとのことです。
https://docs.aws.amazon.com/ja_jp/greengrass/v2/developerguide/local-debug-console-component.html
AWS IoTのコンソールから、Greengrass - デプロイ - デプロイを作成と辿り、対象が、gg-device-001のみとなるデプロイ定義を新規に作成しました。
パブリックコンポーネントで、aws.greengrass.LocalDebugConsoleを追加します。
バージョンは、2.2.2となっていました。
そのほか、ジョブに関するオプション等は、デフォルトのままでデプロイしました。
$ sudo /greengrass/v2/bin/greengrass-cli component list ・・・略・・・ Component Name: aws.greengrass.LocalDebugConsole Version: 2.2.2 State: RUNNING Configuration: {"bindHostname":"localhost","httpsEnabled":"true","port":"1441","websocketPort":"1442"} ・・・略・・・
3 パスワード
ダッシュボードへのアクセスには、パスワード必要ですが、下記のコマンドで確認できます。
$ sudo /greengrass/v2/bin/greengrass-cli get-debug-password AWS libcrypto resolve: searching process and loaded modules AWS libcrypto resolve: found static aws-lc HMAC symbols AWS libcrypto resolve: found static aws-lc libcrypto 1.1.1 EVP_MD symbols Aug 12, 2021 4:04:56 PM software.amazon.awssdk.eventstreamrpc.EventStreamRPCConnection$1 onConnectionSetup INFO: Socket connection /greengrass/v2/ipc.socket:8033 to server result [AWS_ERROR_SUCCESS] Aug 12, 2021 4:04:56 PM software.amazon.awssdk.eventstreamrpc.EventStreamRPCConnection$1 onProtocolMessage INFO: Connection established with event stream RPC server Username: debug Password: rD2xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxmBvZ6E4 Password expires at: 2021-08-13T00:04:56.525583982+09:00 The local debug console is configured to use TLS security. The certificate is self-signed so you will need to bypass your web browser's security warnings to open the console. Before you bypass the security warning, verify that the certificate fingerprint matches one of the following fingerprints. SHA-256: 90 XX XX XX XX XX XX XX XX XX XX XX XX 0F 73 7D 6D 14 9E F8 87 7A 93 F9 45 7F 47 74 EB F4 03 SHA-1: 99 XX XX XX XX XX XX XX XX E9 11 88 51 45 90 EC 6A 4F 7D C4
4 ブラウザでのアクセス
127.0.0.1で1441及び1442(websocket)がオープンしています。
$ netstat -atn | grep 144 tcp6 0 0 127.0.0.1:1441 :::* LISTEN tcp6 0 0 127.0.0.1:1442 :::* LISTEN
ブラウザで、アクセスしている様子です。
ユーザー名とパスワードを入力すると下記のような画面が表示されます。
5 Hello World
確認のために、下記で作成したプライベートのコンポーネント(com.example.HelloWorld)をローカルでデプロイしました。
$ sudo /greengrass/v2/bin/greengrass-cli component list ・・・略・・・ Component Name: com.example.HelloWorld Version: 1.0.0 State: FINISHED Configuration: {"Message":"world"} ・・・略・・・
そして、ブラウザから確認している様子です。 この画面から、レシピの変更や、再起動・再インストールなどがクリックのみで行えるため、非常に作業が捗りそうです。
6 最後に
今回は、ローカルデバッグコンソールを試してみました。
Greengrass V2で、開発形態が、ローカルでのコンポーネント開発というスタイルとなる中、このようなツールを上手く使いこなすことが重要かも知れません。
2023/06/04 追記 Dockerなどで利用する場合、bindHostname属性を0.0.0.0に設定すると、ローカル以外から起動できる https://docs.aws.amazon.com/ja_jp/greengrass/v2/developerguide/local-debug-console-component.html
7 参考リンク
[AWS IoT Greengrass V2] RaspberryPIにインストールしてみました
[AWS IoT Greengrass V2] RaspberryPIでコンポーネントを作成してみました
[AWS IoT Greengrass V2] クラウド側から複数のコアデバイスにコンポーネントをデプロイしてみました
[AWS IoT Greengrass V2] クラウド側からコンポーネントを削除してみました
[AWS IoT Greengrass V2] ローカルデバッグコンソール(aws.greengrass.LocalDebugConsole)を使用してみました
[AWS IoT Greengrass V2] Lambda関数(コンポーネント)をデプロイしてみました
[AWS IoT Greengrass V2] コンポーネントからIoT CoreのメッセージブローカーにPublish/Subscribeしてみました
[AWS IoT Greengrass V2] コンポーネントからシークレットマネージャにアクセスしてみました